package cc.lj.internal.payment.infrastructure.exception;


import cc.lj.internal.core.exception.IGlobalExceptionEnum;

/**
 * 收银模块异常
 *
 * 一共 10 位，分成四段
 *
 * 第一段，1 位，类型
 *      1 - 业务级别异常
 *      2 - 系统级别异常
 * 第二段，3 位，系统类型
 *      001 - 热数据系统
 *      002 - 商户系统
 *      003 - 订单系统
 *      004 - 收款系统
 *      005 - 电子券劵系统
 *      ... - ...
 * 第三段，3 位，模块
 *      不限制规则。
 *      一般建议，每个系统里面，可能有多个模块，可以再去做分段。以用户系统为例子：
 *          001 - OAuth2 模块
 *          002 - User 模块
 *          003 - MobileCode 模块
 * 第四段，3 位，错误码
 *       不限制规则。
 *       一般建议，每个模块自增。
 */

public enum PaymentExceptionEnum implements IGlobalExceptionEnum{

    //==========收银系统=============
    FEIGN_GET_TICKET_PAY_RECORD_LIST_FAILED(1004001001,"去电子券模块查询合同收券记录表发生异常"),
    TICKET_PAY_RECORD_LIST_IS_NULL(1004001003,"查询合同收券记录表list为NULL"),
    UPDATE_TICKET_PAY_RECORD_FAILED(1004001005,"通过主键修改合同收券记录表失败" ),
    INSERT_TICKT_PAY_RECORD_FAILED(1004001007,"新增合同收券记录表失败" ),
    FEIGN_GET_TICKET_BATCH_BYIDS_FAILED(1004001009,"去电子券模块通过主键批量查询电子券批次数据发生异常"  ),
    UPDATE_PRODUCT_CONUME_FAILED(1004001011,"通过主键修改合同收款表失败" ),
    INSERT_PRODUCT_CONUME_FAILED(1004001013,"新增合同收款表失败" ),
    FEIGN_GET_COUPONS_SETTLEMENT_DATA_FAILED(1004001015,"去电子券模块feign请求查询电子券分摊结算数据发生异常" ),
    PRODUCT_CONUME_GET_ONE_FAILED(1004001017,"通过主键查询product_conume表,没有查询到任何数据" ),
    FEIGN_UPDATE_TICKET_PAY_RECORD_FAILED(1004001019,"feign去电子券模块通过主键修改合同收券表发生异常" ),
    GET_PAYFORM_LIST_BY_CONSUMERID_FAILED(1004001021,"通过合同收款表product_consume主键查询现金和电子券支付方式表payform_list表查到的数据>1条或者无数据"),
    TICKET_PAY_RECORD_PRIKEY_DUPLICATE(1004001023,"db_ticket中合同收款表数据同步到db_ljlj库中时，发现主键冲突异常"),
    UPDATE_COUPONS_SUBSIDY_DETAIL_FAILED(1004001024,"通过主键电子券分摊明细表更新失败" ),
    INSERT_COUPONS_SUBSIDY_DETAIL_FAILED(1004001025,"新增电子券分摊明细表失败" ),
    INSERT_COUPONS_SUBSIDY_FAILED(1004001026,"新增电子券分摊表失败" ),
    UPDATE_COUPONS_SUBSIDY_FAILED(1004001027,"通过主键电子券分摊表更新失败" ),
    COUPONS_SUBSIDY_EXIST(1004001028, "通过consumeId查询合同收券补贴表coupons_subsidy表已经存在数据，不可重复提交数据"),
    INSERT_COUPONS_CAP_LOG_FAILED(1004001029,"新增生成封顶额日志表数据失败" );

    private int code;
    //错误提示
    private String message;
    //构造器
    PaymentExceptionEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }
    public int getCode() {
        return code;
    }
    public String getMessage() {
        return message;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public void setMessage(String message) {
        this.message = message;
    }
}
